//
//  StatusDetailViewModel.swift
//  weibo
//
//  Created by yellow on 15/10/20.
//  Copyright © 2015年 yellow. All rights reserved.
//

import UIKit


/// 原创微博Cell的可重用标示符


//微博详情视图模型，主要用于微博在UI上的简单业务逻辑
class StatusDetailViewModel {
    
    //微博详情对象
    var status:Status
    
    
    init(status:Status){
        self.status = status
        //当模型传递到视图模型后就把配图数组提取出来放生成NSURL最后在数组中
        
        //当转发微博有配图时就存储它的urls，因为当转发他人微博，是不孕系传图片的
        if let urls = status.retweeted_status?.pic_urls ?? status.pic_urls{
            for pic in urls {
                let url = NSURL(string: pic["thumbnail_pic"]!)
                thumbnailUrls?.append(url!)
            }
        }
        
    }
    
    
    // TODO:返回一个控件最需要的属性
    
    //读取微博用户的头像的URL
    var iconViewURL:NSURL?{
        return NSURL(string: (status.user?.profile_image_url!)!)
    }
    
    //读取用户等级返回对应的图片 common_icon_membership_level1
    var memberIconImage:UIImage?{
        if status.user?.mbrank>=0 && status.user?.mbrank<=6 {
            return UIImage(named: "common_icon_membership_level\((status.user?.mbrank)!)")
        }
        return nil
    }
    
    //获取 认证类型，-1：没有认证，0，认证用户，2,3,5: 企业认证，220: 达人
    var vipIconImage:UIImage?{
        var image:UIImage?
        switch (status.user?.verified_type)!{
            case 0: image = UIImage(named: "avatar_vip")!
            case 2,3,5:image = UIImage(named: "avatar_enterprise_vip")!
            case 220:image = UIImage(named: "avatar_grassroot")!
            default: image = nil
        }
        return image
    }
    
    //配图URL数组
    var thumbnailUrls:[NSURL]? = [NSURL]()
    
    /// 懒加载获取行高（缓存）
    lazy var rowHight:CGFloat = {
        var cell:StatusViewCell
        
        //根据微博是否为转发微博获取对应的cell
        if self.status.retweeted_status != nil {
            cell = RelayStatusViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: RelayStatusViewCellID)
        }else{
            cell = StatusNormalCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: StatusNormalCellID)
        }
        
        
//        let cell = RelayStatusViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "homeWeiboCell")
        return  cell.rowHeight(self)
    }()
    
    
    /// 获取转发微博text
    var retweetedText:String?{
        // 1. 判断是否是转发微博，如果不是直接返回 nil
        guard let s = status.retweeted_status else {
            return nil
        }
        // 2. s 就是转发微博
        return "@" + (s.user?.screen_name ?? "") + ":" + (s.text ?? "")
    }
    
    //当有转发微博，返回转发微博cellid
    var cellId:String?{
        return  (status.retweeted_status == nil) ? StatusNormalCellID:RelayStatusViewCellID
    }
    
}

